@echo off
chcp 65001 >nul
echo ========================================
echo     NFC锁具管理系统 - 数据库备份工具
echo ========================================
echo.

:: 设置变量
set DB_HOST=localhost
set DB_USER=root
set DB_PASSWORD=123456
set DB_NAME=nfc_lock_system
set BACKUP_DIR=db-backups
set TIMESTAMP=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
set TIMESTAMP=%TIMESTAMP: =0%

:: 创建备份目录
if not exist "%BACKUP_DIR%" (
    mkdir "%BACKUP_DIR%"
    echo 创建备份目录: %BACKUP_DIR%
)

:: 设置备份文件名
set BACKUP_FILE=%BACKUP_DIR%\nfc_lock_system_backup_%TIMESTAMP%.sql

echo 开始备份数据库...
echo 数据库: %DB_NAME%
echo 备份文件: %BACKUP_FILE%
echo.

:: 执行备份
mysqldump -h %DB_HOST% -u %DB_USER% -p%DB_PASSWORD% ^
    --single-transaction ^
    --routines ^
    --triggers ^
    --events ^
    --add-drop-database ^
    --databases %DB_NAME% > "%BACKUP_FILE%"

if %ERRORLEVEL% EQU 0 (
    echo ✅ 数据库备份成功！
    echo 备份文件: %BACKUP_FILE%
    
    :: 显示文件大小
    for %%A in ("%BACKUP_FILE%") do (
        echo 文件大小: %%~zA 字节
    )
    
    echo.
    echo 💡 提示：
    echo - 备份文件包含完整的数据库结构和数据
    echo - 可以使用以下命令恢复数据库：
    echo   mysql -h %DB_HOST% -u %DB_USER% -p ^< "%BACKUP_FILE%"
    echo.
) else (
    echo ❌ 数据库备份失败！
    echo 请检查：
    echo 1. MySQL服务是否运行
    echo 2. 数据库连接参数是否正确
    echo 3. 用户权限是否足够
)

echo.
echo 按任意键退出...
pause >nul